package edu.sjtu.erplab.processmining.mxml;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;

public class Dom4jCreateXML {
	
	    public static void main(String[] args) {
	    	Dom4jCreateXML dom4j = new Dom4jCreateXML();
	        dom4j.generateDocument();
	        System.out.println("done");
	    }

	    public void generateDocument() {
	        // 使用 DocumentHelper 类创建一个文档实例
	        Document document = DocumentHelper.createDocument();
	        // 使用 addElement() 方法创建根元素 catalog 。 addElement() 用于向 XML 文档中增加元素。
	        Element catalogElement = document.addElement("catalog");
	        // 在 catalog 元素中使用 addComment() 方法添加注释“An XML catalog”。
	        catalogElement.addComment("An XML Catalog");
	        // 在 catalog 元素中使用 addProcessingInstruction() 方法增加一个处理指令。
	        catalogElement.addProcessingInstruction("target", "text");
	        
	        
	        // 在 catalog 元素中使用 addElement() 方法增加 journal 元素
	        Element journalElement = catalogElement.addElement("journal");
	        // 使用 addAttribute() 方法向 journal 元素添加 title 和 publisher 属性。
	        journalElement.addAttribute("title", "XML Zone");
	        journalElement.addAttribute("publisher", "IBM developerWorks");
	        
	        
	        // 向 article 元素中添加 journal 元素。
	        Element articleElement = journalElement.addElement("article");
	        // 为 article 元素增加 level 和 date 属性。
	        articleElement.addAttribute("level", "Intermediate");
	        articleElement.addAttribute("date", "December-2009");
	        
	        
	        // 向 article 元素中增加 title 元素
	        Element titleElement = articleElement.addElement("title");
	        // 使用 setText() 方法设置 article 元素的文本。
	        titleElement.setText("Java configuration with XML Schema");
	        //又添加一个同title同级的节点
	        Element authorElement = articleElement.addElement("author");
	        
	        //在author下又增加了一个节点
	        Element firstNameElement = authorElement.addElement("firstname");
	        //firstname节点的内容
	        firstNameElement.setText("Marcello");
	        
	        
	        //在author下又增加了一个节点lastname
	        Element lastNameElement = authorElement.addElement("lastname");
	        lastNameElement.setText("Vitaletti");
	        
	        
	        document.addDocType("catalog", null, "file://c:/catalog.dtd");

	        try {
	            XMLWriter output = new XMLWriter(new FileWriter(new File(
	                    "c:/test.mxml")));//生成的XML  路径
	            output.write(document);
	            output.close();
	        } catch (IOException e) {
	            System.out.println(e.getMessage());
	        }
	    }

	}

